Control elements for tracking and movement of furniture and interior architectural elements

ABSTRACT

Improved systems and methods for operating moveable architectural elements (e.g., furniture) are described. The system can include improved features implemented throughout various elements, including hardware elements, controller elements, and/or software elements. As one example, the system can feature the ability to map a characteristic load profile across a particular length of actuation and, if during operation a measured load exceeds the profile, adjust (e.g., stop) the system&#39;s motion. The system can also advantageously map its current draw to increase energy efficiency. In addition, the system can include a positioning system that enables it to automatically determine its position upon start up and during operation. In some implementations, the system includes multiple moveable elements (e.g., furniture items). In some cases, power is distributed to the moveable element(s) using a moveable power distribution module. Many other improvements and features are contemplated and described.

CROSS REFERENCE TO RELATED APPLICATION

This application claims priority to and the benefit of U.S. ProvisionalPatent Application No. 62/523,409, filed on Jun. 22, 2017, titled“Control Elements for Tracking and Movement of Furniture and InteriorArchitectural Elements,” the contents of which are incorporated byreference herein in their entirety.

TECHNICAL FIELD

The invention relates generally to apparatuses, systems, and methods foroperating moveable architectural elements, and, more specifically, tointerior architectural elements (e.g., furniture) that can be moved andtransformed in a safe, repeatable, and reliable manner.

BACKGROUND

Motor-operated, modular home and office furniture is becoming moreabundant in today's world. For example, office desks provide motorizedlifts to raise and lower desks, allowing both standing and sittingworkspaces. Other examples include moveable walls in function rooms andconference centers, allowing reconfiguration and resizing to meetspecific demands. However, such implementations are designed forindustrial environments and do not consider the variety ofconsumer/residential environments, or other settings in which furnitureis typically placed, such as hotel rooms or retail space, or morespecialized environments such as hospitals or elder care facilities, orthe need for user-friendly controls. Design aspects such as convenientlyplaced outlets and accessory lighting are overlooked, and the use ofplastic or metal cable carriers may provide a robust design, but are notsuitable for the everyday home and office environment. As just oneexample, conventional moving wall systems typically comprise only amoving panel and do not carry electrical power, do not mechanicallysupport other structures, and are not outfitted to allow for modularexpansion. In addition, conventional implementations lack a way tomanage multiple moving elements without linearly expanding thedimensions of the power distribution system, e.g., three independentmoving elements requires three separate cable carriers mounted in aside-by-side fashion. In addition, conventional implementations used inindustrial settings are often less sensitive to power consumption thansystems implemented in other environments (e.g., residential andoffice). Non-industrial implementations also require easy-to-useintuitive controls that allow for easy movement, manipulation andtransformation of the furniture by non-professionals. Movable furniturealso presents a safety hazard as it can collide with humans and/orobjects to harmful effect.

Accordingly, there is a need for improved systems and methods foroperating moveable furniture and interior architectural items toaccommodate its increased usage in non-industrial settings.

SUMMARY

This disclosure describes an improved moveable architectural elementsystem and operating techniques by incorporating features that solvemany of the problems in existing moveable furniture items. The improvedfeatures are implemented throughout various elements of the system,including hardware elements, controller elements, and/or softwareelements. As one example, for improved safety, the system canincorporate a controller and/or a processing unit that implements aforce mapping module. During an initial movement of the system across aparticular surface, a profile can be generated of a typical force on thesystem. During subsequent movements of the system, the force can bemonitored and if it exceeds the profile by a particular amount themotion of the system can be stopped. This can prevent potentiallyharmful collisions of the system with people, pets, and/or inanimateobjects.

Mapping the load profile may enable the system to be implemented andautonomously operated in a wide range of environments, which was notsafely feasible in conventional systems. As one example, floors indifferent living spaces have different friction properties; some havehard woods, some have carpet, some have slight inclines, some haveslight declines, etc. As a result, it is very difficult to generate aone-size-fits-all profile that enables the system to be functionallyimplemented across all desired living spaces (or other environments). Ifthe system uses a static load profile based on a perfectly levelsurface, the system may mistake an inclined surface in another livingspace as an impermissible load, causing the system to stop, which wouldbe non-functional for the inhabitant of the inclined surface livingspace. By incorporating the mapping functionality, the system cangenerate environment specific profiles, which vastly increases theenvironments in which it can be installed.

In some implementations, the system can also use mapping for otherpurposes, e.g., to improve its power consumption/energy efficiency. Forexample, the system can map an amount of current delivered to its motorsduring operation and, from this, determine an appropriate amount ofcurrent to deliver to the motors during subsequent operations. This canprevent wasting current (improving energy efficiency) and can alsoresult in the system imparting less momentum upon collision with anobject. In some instances, the mapped current values can be used todetermine if an obstruction has been encountered (e.g., if a measuredcurrent value is greater than the mapped value, then an obstruction canbe inferred). In other instances, the system can be programmed to movethe architectural element according to a desired movement profile (e.g.,speed and acceleration) and the system can determine an appropriateamount of current to deliver to the motors in order to accomplish thedesired movement profile (e.g., based on torque demands), without theuse of mapped current values.

Another example improvement that can be featured by the system is apositioning system that enables the system to automatically determineits position within a particular environment. Awareness of position canbe beneficial in that the system can tailor its movement profiledepending on where in the environment it is located. For example, if thesystem is located close to a wall it may move slower than if it islocated in the middle of a room. Another improvement that can befeatured by the system is modularly distributed power, which can involveusing a moveable exit power module to deliver power to moveableelements. This feature can avoid many of the power cable complicationsand failures encountered in conventional systems.

Yet another improvement featured by the system is the ability toindependently move several architectural elements. As just onenon-limiting example, a wall can move in one direction and a bed canmove in the opposing direction, which can enable a single living spaceto be converted from a living room into a bedroom, improving livabilityand functionality for the inhabitants. These improvements and others aredescribed in greater detail below.

In one aspect, the invention relates to a method of operating a moveablearchitectural element. The method can include the steps of (i)identifying a desired movement profile of the moveable architecturalelement along a length of actuation; (ii) performing an initial movementof the moveable architectural element along the length of actuationusing a motor, the initial movement having the desired movement profile;(iii) measuring and storing a profile of an operation parameter; (iv)upon performing a subsequent movement of the moveable architecturalelement, measuring an indicator of the operation parameter to determinea measured operation parameter; (v) comparing the measured operationparameter to the profile of the operation parameter; and (vi) if adifferential between the measured operation parameter and the profile ofthe operation parameter exceeds a predetermined threshold, adjusting thesubsequent movement of the moveable architectural element.

In various embodiments of the above aspect, the desired movement profilecan include a speed profile and/or an acceleration profile. In someinstances, the desired movement profile is based on a desired motorparameter profile. Example motor parameter profiles can include a loadprofile, a speed profile, a voltage profile, a current profile, and/or apulse width modulation profile. The operation parameter can include aload on the motor, a speed of the motor, a voltage delivered to themotor, a current delivered to the motor, and/or a pulse width modulationdelivered to the motor. In cases in which the operation parameter is aload on the motor, the load can be measured as an alignment angle value.The indicator of the operation parameter can be the same or differentfrom the measured parameter.

In various embodiments of the above aspect, adjusting the subsequentmovement of the moveable architectural element includes stopping thesubsequent movement, reducing a speed of the subsequent movement, and/orreversing a direction of the subsequent movement. The moveablearchitectural element can include a wall and/or a furniture element. Themotor can be an electric DC motor and/or stepper motor. In someimplementations, the motor moves the moveable architectural element viaa drive wheel and the length of actuation includes a distance over whichthe drive wheel travels. The length of actuation can include a roomsurface, e.g., a floor surface, a wall surface, and/or a ceilingsurface. In some instances, the operation parameter varies along thelength of actuation at least in part because of imperfections (e.g., anincline surface, a decline surface, and variable friction) on the roomsurface. The method can further include the steps of performing anadditional movement of the architectural element along at least aportion of the length of actuation and updating the profile of theoperation parameter based on operation parameters measured during theadditional movement.

In another aspect, the invention relates to a system for operating amoveable architectural element. The system can include a motor adaptedto move the moveable architectural element along a length of actuation,and a controller and/or a data processing apparatus programmed toperform certain operations. The operations can include: (i) obtaining adesired movement profile of the moveable architectural element along alength of actuation; (ii) performing an initial movement of the moveablearchitectural element along the length of actuation using the motor, theinitial movement having the desired movement profile; (iii) measuring aprofile of an operation parameter; (iv) upon performing a subsequentmovement of the moveable architectural element, measuring an indicatorof the operation parameter to determine a measured operation parameter;(v) comparing the measured operation parameter to the profile of theoperation parameter; and (vi) if a differential between the measuredoperation parameter and the profile of the operation parameter exceeds apredetermined threshold, adjusting the subsequent movement of themoveable architectural element. The system can also include a memoryunit for storing the profile of the operation parameter.

In various embodiments of the above aspect, the desired movement profilecan include a speed profile and/or an acceleration profile. In someinstances, the desired movement profile is based on a desired motorparameter profile. Example motor parameter profiles can include a loadprofile, a speed profile, a voltage profile, a current profile, and/or apulse width modulation profile. The operation parameter can include aload on the motor, a speed of the motor, a voltage delivered to themotor, a current delivered to the motor, and/or a pulse width modulationdelivered to the motor. In cases in which the operation parameter is aload on the motor, the load can be measured as an alignment angle value.The indicator of the operation parameter can be the same or differentfrom the measured parameter.

In various embodiments of the above aspect, adjusting the subsequentmovement of the moveable architectural element includes stopping thesubsequent movement, reducing a speed of the subsequent movement, and/orreversing a direction of the subsequent movement. The moveablearchitectural element can include a wall and/or a furniture element. Themotor can be an electric DC motor and/or stepper motor. In someimplementations, the motor moves the moveable architectural element viaa drive wheel and the length of actuation includes a distance over whichthe drive wheel travels. The length of actuation can include a roomsurface, e.g., a floor surface, a wall surface, and/or a ceilingsurface. In some instances, the operation parameter varies along thelength of actuation at least in part because of imperfections (e.g., anincline surface, a decline surface, and variable friction) on the roomsurface. The operations can further include instructing the motor toperform an additional movement of the architectural element along atleast a portion of the length of actuation and updating the profile ofthe operation parameter based on operation parameters measured duringthe additional movement.

In another aspect, the invention relates to a method for determining aposition of a moveable architectural element relative to a stationaryelement. The method can include the steps of (i) obtaining properties ofa relative position tracking element disposed in fixed relation to thestationary element and including discrete non-repeating portions, theproperties including an order of the discrete non-repeating portions anda length of each portion; (ii) sensing the position of the moveablearchitectural element with respect to a particular portion of therelative position tracking element; and (iii) using the sensed positionof the moveable architectural element with respect to the particularportion and the obtained properties to determine a relative position ofthe moveable architectural element relative to the stationary element.

In various embodiments of the above aspect, the moveable architecturalelement includes a wall and/or a furniture item. The stationary item caninclude a housing that functions as a linear guide for the moveablearchitectural element. The relative position tracking element caninclude a printed tape and the discrete non-repeating portions caninclude a pattern of non-repeating colors. The step of obtainingproperties of the relative position tracking element can includescanning the relative position tracking element with a sensor assemblythat measures the properties. The sensor assembly can be affixed to themoveable architectural element and/or communicate the properties to amicroprocessor. In some instances, the step of sensing the position ofthe moveable architectural element with respect to the particularportion of the relative position tracking element is performed by thesensor assembly that measures the properties. The sensor assembly caninclude a stable color output that illuminates the printed tape, a colorsensor adapted to receive light reflected off of the printed tape, andan incremental positioning system that measures the length of eachportion of the relative position tracking element. In some cases, theincremental positioning system includes an encoder and/or a steppermotor (e.g., controlled by an open loop controller).

In various embodiments of the above aspect, the method can also includethe steps of determining a distance to an adjacent portion of therelative position tracking element using the incremental positioningsystem, and based on the distance and the obtained properties,determining an exact position of the moveable architectural elementrelative to the stationary element. In some cases, the exact position isdetermined within an accuracy of 5 mm or less. In some cases, the stablecolor output includes a white LED and the color sensor includes an RGBsensor. In various instances, the obtaining properties step occursduring an initialization phase and the sensing and using steps occurduring an operating phase. The sensing and using steps can occur uponstart up of a system executing the method. In some implementations, theorder of the discrete non-repeating portions encodes information about asystem executing the method.

In another aspect, the invention relates to a system for determining aposition of a moveable architectural element relative to a stationaryelement. The system can include a relative position tracking elementdisposed in fixed relation to the stationary element and having discretenon-repeating portions; a sensor assembly for sensing the position ofthe moveable architectural element with respect to a particular portionof the relative position tracking element; and one or more dataprocessing apparatus programmed to perform certain operations. Theoperations can include obtaining properties of the relative positiontracking element, the properties including an order of the discretenon-repeating portions and a length of each portion; and using thesensed position of the moveable architectural element with respect tothe particular portion and the obtained properties to determine arelative position of the moveable architectural element relative to thestationary element.

In various embodiments of the above aspect, the moveable architecturalelement includes a wall and/or a furniture item. The stationary item caninclude a housing that functions as a linear guide for the moveablearchitectural element. The relative position tracking element caninclude a printed tape and the discrete non-repeating portions caninclude a pattern of non-repeating colors. The system can include asecond sensor assembly for obtaining the properties of the relativeposition tracking element by scanning the relative position trackingelement. In some cases, the first sensor assembly and the second sensorassembly are the same sensory assembly. In some cases, the second sensorassembly can include a stable color output that illuminates the printedtape, a color sensor adapted to receive light reflected off of theprinted tape, and an incremental positioning system the measures thelength of each portion of the relative position tracking element. Insome cases, the incremental positioning system includes an encoderand/or a stepper motor (e.g., controlled by an open loop controller).

In various embodiments of the above aspect, the operations performed bythe data processing apparatus further includes determining a distance toan adjacent portion of the relative position tracking element using theincremental positioning system, and based on the distance and theobtained properties, determining an exact position of the moveablearchitectural element relative to the stationary element. In some cases,the exact position is determined within an accuracy of 5 mm or less. Insome cases, the stable color output includes a white LED and the colorsensor includes an RGB sensor. The sensor assembly can be affixed to themoveable architectural element. In some implementations, the order ofthe discrete non-repeating portions encodes information about thesystem.

In another aspect, the invention relates to a system for guiding anddistributing power to at least one moveable architectural element. Thesystem can include (i) a housing including a track for guiding motion ofthe at least one moveable architectural element and a power distributioncomponent, (ii) a power entry module adapted to deliver power from apower source to the power distribution component, and (iii) at least onemoveable power exit module adapted to deliver power from the powerdistribution component to the at least one moveable architecturalelement.

In various embodiments of the above aspect, the power distributioncomponent includes at least one conductive rail. For example, both thetrack and the power distribution component can include the conductiverail(s). The conductive rails can include an impedance of less than 0.1ohms. In some instances, the housing also include a polymeric insulatingmaterial for insulating the conductive rail. The power source caninclude an AC power source and/or a DC power source. In some cases, aproximal end of the power exit module is contained within the housingand a distal end of the power exit module extends outside the housingand makes electrical contact with the moveable architectural element.The distal end of the power exit module can make electrical contact withand deliver power to a motor that moves the moveable architecturalelement. The power exit module and the motor can be attached by a powercord, and the system can further include a strain relief mechanism tolimit a force transmitted to the power distribution component.

In various embodiments of the above aspect, the system includes at leasttwo power exit modules and/or at least two moveable architecturalelements. In some cases, each moveable architectural element receivespower independent of the other moveable architectural elements. Themoveable architectural element can include a wall and/or a furnitureitem. The system can also include a second housing including (i) asecond track for guiding motion of the at least one moveablearchitectural element and (ii) a second power distribution component,and a splice section adapted to attach the housing to the second housingand to connect the track with the second track and the powerdistribution component with the second power distribution component. Thesystem can also include a mounting mechanism for affixing the system toan existing environment that can include an adhesive strip, a mountingbracket, and/or a high friction material. The existing environment caninclude a floor surface, a wall surface, and/or a ceiling surface.

In another aspect, the invention relates to a method for guiding anddistributing power to at least one moveable architectural element. Themethod can include the steps of installing a housing having (i) a trackfor guiding motion of the at least one moveable architectural elementand (ii) a power distribution component, and delivering power from apower source through a power distribution component to the at least onemoveable architectural element via at least one moveable power exitmodule.

In various embodiments of the above aspect, the power distributioncomponent includes at least one conductive rail. For example, both thetrack and the power distribution component can include the conductiverail(s). The conductive rails can include an impedance of less than 0.1ohms. In some instances, the housing also includes a polymericinsulating material for insulating the conductive rail. The power sourcecan include an AC power source and/or a DC power source. In some cases,a proximal end of the power exit module is contained within the housingand a distal end of the power exit module extends outside the housingand makes electrical contact with the moveable architectural element.The distal end of the power exit module can make electrical contact withand deliver power to a motor that moves the moveable architecturalelement. The power exit module and the motor can be attached by a powercord, and the method can further include limiting a force transmitted tothe power distribution component using a strain relief mechanism.

In various embodiments of the above aspect, the power exit moduleincludes at least two power exit modules and/or the moveablearchitectural element includes at least two moveable architecturalelements. In some cases, the delivering step includes independentlydelivering power to each of the moveable architectural elements. Themoveable architectural element can include a wall and/or a furnitureitem. The method can also include affixing the system to an existingenvironment using a mounting mechanism that can include an adhesivestrip, a mounting bracket, and/or a high friction material. The existingenvironment can include a floor surface, a wall surface, and/or aceiling surface.

In another aspect, the invention relates to a system for movingarchitectural elements. The system can include a first architecturalelement movable along a first track defining a first axis and a secondarchitectural element movable along a second track attached to the firstarchitectural element.

In various embodiments of the above aspect, the first architecturalelement can include a wall and/or a first furniture item, and the secondarchitectural item can include a second furniture item (e.g., a bed, adesk, a couch, a closet, and/or a shelf). In some instances, the firstarchitectural element is moved by a first actuator (e.g., a motor) thatreceives electrical power from a power source and the secondarchitectural element is moved by a second actuator (e.g., a frictiondrive) that operates without electrical power. In some cases, both thefirst and second actuators receive electrical power from a power source.The second track can define a second axis, which can be the same ordifferent than the first axis. As one example, the second axis can beperpendicular to the first axis. In various instances, the first andsecond architectural elements can move independently of each other or inunison. The first and second architectural elements can be arrangedhorizontally adjacent to each other, vertically adjacent to each other,and/or nested.

In another aspect, the invention relates to a method of movingarchitectural element. The method can include moving a firstarchitectural element along a first track defining a first axis, andmoving a second architectural element along a second track, the secondtrack being attached to the first architectural element.

In various embodiments of the above aspect, the first architecturalelement can include a wall and/or a first furniture item, and the secondarchitectural item can include a second furniture item (e.g., a bed, adesk, a couch, a closet, and/or a shelf). In some instances, the firstarchitectural element is moved by a first actuator (e.g., a motor) thatreceives electrical power from a power source and the secondarchitectural element is moved by a second actuator (e.g., a frictiondrive) that operates without electrical power. In some cases, both thefirst and second actuators receive electrical power from a power source.The second track can define a second axis, which can be the same ordifferent than the first axis. As one example, the second axis can beperpendicular to the first axis. In various instances, the steps ofmoving the first architectural element and moving the secondarchitectural element occur independently of each other or in unison.The first and second architectural elements can be arranged horizontallyadjacent to each other, vertically adjacent to each other, and/ornested.

In another aspect, the invention relates to another method of operatinga moveable architectural element. The method can include the steps of(i) identifying a desired movement profile of the moveable architecturalelement along a length of actuation; (ii) performing an initial movementof the moveable architectural element along the length of actuationusing a motor, the initial movement having the desired movement profile;(iii) measuring and storing a profile of an operation parameter; (iv)calculating a current profile based on the profile of the operationparameter, where the current profile includes an appropriate amount ofcurrent to deliver to the motor along the length of actuation; and (v)upon performing a subsequent movement of the moveable architecturalelement, delivering current to the motor in accordance with the currentprofile. In other instances, the system can be programmed to move thearchitectural element according to a desired movement profile (e.g.,speed and acceleration) and the system can determine an appropriateamount of current to deliver to the motors in order to accomplish thedesired movement profile (e.g., based on torque demands), without theuse of mapped current values.

In various embodiments of the above aspect, the desired movement profilecan include a speed profile and/or an acceleration profile. In someinstances, the desired movement profile is based on a desired motorparameter profile. Example motor parameter profiles can include a loadprofile, a speed profile, a voltage profile, a current profile, and/or apulse width modulation profile. The operation parameter can include aload on the motor, a speed of the motor, a voltage delivered to themotor, a current delivered to the motor, and/or a pulse width modulationdelivered to the motor. In cases in which the operation parameter is aload on the motor, the load can be measured as an alignment angle value.

In various embodiments of the above aspect, the moveable architecturalelement can include a wall and/or a furniture element. The motor can bean electric DC motor and/or stepper motor. In some implementations, themotor moves the moveable architectural element via a drive wheel and thelength of actuation includes a distance over which the drive wheeltravels. The length of actuation can include a room surface, e.g., afloor surface, a wall surface, and/or a ceiling surface. In someinstances, the operation parameter varies along the length of actuationat least in part because of imperfections (e.g., an incline surface, adecline surface, and variable friction) on the room surface. In someinstances, the appropriate amount of current is no greater than 110percent of a minimum amount of current necessary to prevent the motorfrom stalling. The method can further include the steps of performing anadditional movement of the architectural element along at least aportion of the length of actuation, measuring an updated operationparameter profile during performance of the additional movement, andcalculating an updated current profile based on the updated operationparameter profile.

In another aspect, the invention relates to another system for operatinga moveable architectural element. The system can include a motor adaptedto move the moveable architectural element along a length of actuationand a controller and/or a data processing apparatus programmed toperform certain operations. The operations can include (i) obtaining adesired movement profile of the moveable architectural element along alength of actuation; (ii) performing an initial movement of the moveablearchitectural element along the length of actuation using a motor, theinitial movement having the desired movement profile; (iii) measuringand storing a profile of an operation parameter; (iv) calculating acurrent profile based on the profile of the operation parameter, thecurrent profile comprising an appropriate amount of current to deliverto the motor along the length of actuation; and (v) upon performing asubsequent movement of the moveable architectural element, deliveringcurrent to the motor in accordance with the current profile. In otherinstances, the system can be programmed to move the architecturalelement according to a desired movement profile (e.g., speed andacceleration) and the system can determine an appropriate amount ofcurrent to deliver to the motors in order to accomplish the desiredmovement profile (e.g., based on torque demands), without the use ofmapped current values.

In various embodiments of the above aspect, the desired movement profilecan include a speed profile and/or an acceleration profile. In someinstances, the desired movement profile is based on a desired motorparameter profile. Example motor parameter profiles can include a loadprofile, a speed profile, a voltage profile, a current profile, and/or apulse width modulation profile. The operation parameter can include aload on the motor, a speed of the motor, a voltage delivered to themotor, a current delivered to the motor, and/or a pulse width modulationdelivered to the motor. In cases in which the operation parameter is aload on the motor, the load can be measured as an alignment angle value.

In various embodiments of the above aspect, the moveable architecturalelement can include a wall and/or a furniture element. The motor can bean electric DC motor and/or stepper motor. In some implementations, themotor moves the moveable architectural element via a drive wheel and thelength of actuation includes a distance over which the drive wheeltravels. The length of actuation can include a room surface, e.g., afloor surface, a wall surface, and/or a ceiling surface. In someinstances, the operation parameter varies along the length of actuationat least in part because of imperfections (e.g., an incline surface, adecline surface, and variable friction) on the room surface. In someinstances, the appropriate amount of current is no greater than 110percent of a minimum amount of current necessary to prevent the motorfrom stalling. In some instances, the operations can further includeperforming an additional movement of the architectural element along atleast a portion of the length of actuation, measuring an updatedoperation parameter profile during performance of the additionalmovement, and calculating an updated current profile based on theupdated operation parameter profile.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, like reference characters generally refer to the sameparts throughout the different views. Also, the drawings are notnecessarily to scale, emphasis instead generally being placed uponillustrating the principles of the invention. In the followingdescription, various embodiments of the present invention are describedwith reference to the following drawings, in which:

FIG. 1 is a schematic perspective view of a system including a moveablearchitectural element, according to various embodiments;

FIG. 2 is a schematic diagram of a controller used to control themoveable architectural element, according to various embodiments;

FIG. 3 is a flow chart of example operations performed by a mappingmodule of the controller, according to various embodiments;

FIG. 4 is a flow chart of example operations performed by a currentmapping module, according to various embodiments;

FIG. 5 is an electrical schematic for a motor, according to variousembodiments;

FIG. 6 is a schematic perspective view of a system including a positiontracking element, according to various embodiments;

FIG. 7 is a schematic diagram of the position tracking element,according to various embodiments;

FIG. 8 is a flow chart of example operations performed by a positiontracking module, according to various embodiments;

FIG. 9 is a schematic perspective view of a power distribution assembly,according to various embodiments;

FIG. 10 is a schematic perspective view of a system including multiplemoveable architectural elements, according to various embodiments;

FIG. 11A is a top perspective view of a system including one powerdistribution assembly, according to various embodiments;

FIG. 11B is a schematic front view of the system shown in FIG. 11A;

FIG. 12A is a top perspective view of a system including two powerdistribution elements, according to various embodiments;

FIG. 12B is a schematic front view of the system shown in FIG. 12A;

FIG. 13 is a schematic perspective view of a system including multipletracks, according to various embodiments;

FIG. 14A is a schematic perspective view of a system including multiplemoveable architectural elements in a nested configuration, according tovarious embodiments;

FIG. 14B is a schematic front view of the system shown in FIG. 14A;

FIG. 15 is a schematic perspective view of a system including a motordrive and a friction drive, according to various embodiments; and

FIG. 16 is a schematic top view of a system including a friction drive,according to various embodiments.

DETAILED DESCRIPTION

Embodiments of the present invention relate to improved operation andsafety of moveable architectural elements. In general, the conceptsdescribed herein are applicable to any architectural element, e.g., awall, furniture (e.g., a bed, a dresser, a desk, etc.), a closet, ashelf, a door, a stage, etc., even if only one type of architecturalelement is described when illustrating a particular concept. Inaddition, the concepts described herein are generally applicable to anytechnique for moving a moveable architectural element, e.g., motordrives, friction drives, magnetic drives, etc., even if only one type ofmovement technique is described while illustrating a particular concept.

FIG. 1 shows an example system 10 that includes a moveable architecturalelement 100 that is moved by a drive element 102 (e.g., a wheel) drivenby a motor 104. The motor can be controlled by a controller 106. Thecontroller 106 can communicate with the motor 104 using any knowntechnique, e.g., locally through a wired connection, via a local areanetwork (LAN) or similar local network, remotely via the internet orother similar network, etc. In some cases, as shown in FIG. 1 , thearchitectural element 100 moves along a length of actuation 110. As usedherein, the term length of actuation 110 refers to a distance over whichthe architectural element 100 travels. In general, the length ofactuation 110 can include any surface traversed by the architecturalelement 100, e.g., a floor surface, a wall surface, a ceiling surface,etc. In some cases, the element 100 is guided along the length ofactuation 110 by a track 108 (e.g., a rail, a guide, etc.). AlthoughFIG. 1 shows the track 108 guiding only a single side of thearchitectural element 100, in other embodiments another side of theelement 100 (e.g., the opposing side) can be guided by another track.

FIG. 2 is a schematic diagram showing example modules that can beexecuted by the controller 106. In some instances, the controller 106executes a mapping module 202. It can be advantageous to generate a mapof baseline values of a particular operation parameter of the motor 104(e.g., a load on the motor 104, a speed of the motor 104, etc.) atvarious points during movement of the element 100 along the length ofactuation 110. For example, an operation parameter measured duringoperation of the device can be compared against the map of baselinevalues and, if a disparity is found, some corrective action can be taken(e.g., stopping movement of the element 100). Among other advantages,this can improve system safety by preventing collisions with humans,pets, and/or inanimate objects, for example. The mapping module 202 isprimarily described below with respect to motor load and motor speed;however, in general, the mapping module can be implemented to apply toany operation parameter of system 10, e.g., voltage, current, pulsewidth modulation, etc.

In order to understand the mapping module 202, it is helpful tounderstand how the motor 104 that provides the force for movement of thedrive element 102/architectural element 100 operates. In general, themotor 104 can be any type of motor, e.g., stepper motor, DC electricmotor, servo motor, etc., although the below description will primarilyfocus on embodiments in which the motor 104 is a stepper motor. In someinstances, certain parameters of the motor 104 are fixed (e.g., powersupply voltages, wheel/gear ratios, etc.) and certain parameters are setby firmware and can be varied (e.g., current, acceleration, speed,etc.).

Stepper motors typically include windings that form magnetic fields whencurrent is flowing and a magnetic rotor that turns to align with themagnetic field. Adjusting the current flowing through different windingscreates a turning magnetic field which causes the rotor to spin. Therotor can be attached to a torque transferring mechanism (e.g., a driveshaft) that transfers torque to the drive element 102 resulting inmovement of the architectural element 100. As will be understood bythose skilled in the art, in order to generate torque to spin the rotor(e.g., to move the element 100), the motor 104 needs to overcome forcesthat are counteracting that motion. Taking the example of thearchitectural element 100, those forces are often the static frictionalforces imposed by the surface upon which the element 100 travels.However, many additional counteracting forces are possible, e.g., anobject or a person blocking the element's movement. In general, the sumof all of the forces counteracting motion of the element 100 is the loadon the motor 104.

In general, disregarding the energy dissipation from the current flowingthrough the windings, when the motor 104 is not driving a significantload, the rotor keeps up closely with the magnetic field, and the“alignment angle” (angle between the rotor and the stator toothgenerating the magnetic field) is small. When the rotor and the magneticfield are aligned, no torque is being transferred to the rotor, no poweris being expended, and the load on the motor 104 is minimal (e.g, 0 N).Conversely, when the motor is driving a significant load, the gapbetween the magnetic field and the rotor widens, and the alignment angleincreases. When the rotor and magnetic field are maximally separated,full torque is being transferred to the rotor, maximum power is beingexpended to move the rotor, and the load on the motor 104 is at amaximum. If the alignment angle exceeds a particular threshold valuethen the motor 104 stalls.

In many conventional applications, stepper motors 104 experience arelatively constant load during operation. Such conventional systems canbe pre-programmed with a threshold load value that if exceeded duringoperation can result in shutting down or reversing the motor. Oneexample of such a system is found in many conventional garage doors,which are pre-programmed with a particular threshold load. If that loadis exceeded during operation, the system assumes that it has collidedwith something and either shuts off or reverses the motor.

Pre-programming a threshold load value is not always practical for thesystem 10 described herein, because the load experienced by the system10 can vary so greatly across various installations of the system 10.For example, the load can vary based on travel surface material (e.g.,hardwood vs. tile vs. carpet, etc.), incline surfaces and/or declinesurfaces, frictional coatings (e.g., lacquer, grout, etc.), etc. As aresult, a threshold load value that may be appropriate to indicate anobstruction or other safety violation in one installation might beinappropriate in another installation. For example, the threshold loadvalue appropriate for a system 10 installed on a flat hardwood surfacemight be exceeded upon any motion of a system 10 installed on aninclined carpet surface, resulting in undesired disruption of theinclined carpet surface system. The mapping module 202 executed by thecontroller 106 can enable the system 10 to be operable across anyinstallation, while still maintaining the safety benefits of having athreshold load value.

FIG. 3 is a flow chart showing example operations performed by themapping module 202. In some instances, the operations can includeidentifying a desired movement profile of the moveable architecturalelement 100 along the length of actuation 110. The controller 106 canidentify the desired movement profile using any known technique, e.g.,it can be pre-programmed, received from a user input (either on a localuser interface or through a web portal in communication with thecontroller 106), via a machine learning process, etc. As used herein,movement profile refers to values for a parameter that describes ordefines motion of the architectural element 100 at all or some locationsalong the length of actuation 110. The movement profile can be constantor variable, in various instances. In general, the movement parameterprofile can be of any desirable movement parameter. For example, themovement parameter profile can include a desired speed profile, adesired acceleration profile, etc. In some cases, the desired movementprofile is based on a desired motor parameter profile. As used herein, amotor parameter profile refers to values for a parameter that describesor defines operation of the motor 104. In general, the motor parameterprofile can be of any desirable motor parameter. For example, a desiredload profile, a desired speed profile, a desired voltage profile, adesired current profile, a desired pulse width modulation profile, etc.

Once the desired movement profile is identified, the controller 106 cancause the moveable architectural element 100 to perform an initialmovement having the desired movement profile along the length ofactuation 110. For example, the controller 106 can control the motor 104such that the architectural element 100 moves across the length ofactuation 110 having a particular speed profile and accelerationprofile. During the initial movement, an operation parameter can bemeasured at various locations along the length of actuation so that anoperation parameter profile is generated. Any suitable number ofmeasurements can be collected. For example, an example stepper motor 104can step the motor through 51200 steps per revolution, or in incrementsof about 0.007 degrees. In some cases, a measurement can be collected ateach step (e.g., cases that include dedicated circuitry for processingmeasurements); however, in other cases mapping the parameter at all51200 steps is impractical, especially without dedicated circuitry. Inaddition performing and storing that many measurements can exceed thestorage capacity and processing capability of many stepper motors andcontrollers. Even in implementations that include storage capacity andprocessing capability to handle this many measurements, the inventorshave determined that, in some cases, performing measurements at such ahigh resolution may not provide noticeably or practically better resultsthan performing measures at a lower resolution. The inventors havedetermined that, in various implementations, acceptable results can beachieved by performing measurements at the following angularresolutions: in a range from 1 degree to 45 degrees, 2 degrees to 40degrees, 3 degrees to 35 degrees, 4 degrees to 30 degrees, 5 degrees to25 degrees (e.g., 7.2 degrees), 7 degrees to 20 degrees (e.g., 7.2degrees), 8 degrees to 15 degrees, and 9 degrees to 10 degrees. Forexample, if measurements are performed at an angular resolution of 7.2degrees, that means that a measurement is collected each time the rotorrotates 7.2 degrees.

In some instances, if the sensor collects more than one measurementwithin the programmed angular resolution (e.g., more than onemeasurement within a particular 7.2 degree rotation), the additionalmeasurement can be treated in a variety of ways, e.g., only the firstmeasured value is used (which can save computation time), only thesecond measured value is used, an average value is used, both values areused (resolution changes), etc. Similarly, if the sensor misses ameasurement within the programmed resolution (e.g., no measurement iscollected within a particular 7.2 degree rotation), this can be handledin a variety of ways in order to continue reliable operation, e.g., themissing value can be extrapolated from other measured values.

As mentioned above, the operation parameter can include, e.g., load onthe motor 104, speed of the motor 104, voltage draw, current draw, pulsewidth modulation, etc. The operation parameter can be measured using anysuitable instrument/technique, e.g., a sensor and/or data processingchip attached to the motor 104. In some instances, rather than directlymeasuring the operation parameter of interest, the operation parameteris indirectly measured by measuring an indicator of the operationparameter (e.g., a value from which the operation parameter can bedetermined). Taking the example of the operation parameter being a loadon the motor 104, in some cases, rather than directly measuring theload, the system 10 can measure the alignment angle of the motor 104,which can be used to calculate (or estimate) the load. In this example,the alignment angle itself can be measured by determining the ratio ofinput power to output power. In some embodiments, the motor 104 caninclude a register that measures and outputs power efficiency, fromwhich alignment angle can be determined, from which load on the motor104 can be determined. The controller 106 can be preprogrammed withthese calculations, such that for each measurement of power efficiency acorresponding load on the motor 104 is calculated (e.g., a maximum powerefficiency reading (e.g., 0) can represent maximum load (or stall) and aminimum power efficiency reading (e.g., 1024) can represent minimumload). As will be understood by those of skill in the art, many otherexamples are possible for the indirect measurement of the variousoperational parameters of interest, all of which are contemplatedherein.

As another example from mapping load on the motor 104, in some instancesthe system monitors the load and alters the speed of the motoraccordingly (e.g., slows the motor down if the load increases and speedsit back up to the desired speed if the load decreases). This techniquecan enable keeping the current and torque low while allowing operationin a wide range of floors, e.g., because the motor 104 can use theelement's inertia to help it travel areas of increased friction (e.g.,inclines) as opposed to trying to maintain a constant higher speed andstalling. In some such instances, because changing the speed changes thealignment angle (e.g., trying to keep the alignment angle small), theload variable can be unusable for mapping. In such instances, the mappedoperation parameter can be speed (which can represent load).

In various embodiments, the operation parameters measured during theinitial movement can be stored in a memory accessible by the controller106. The memory can be located in any suitable location, e.g., locallyon the motor 104, locally on the controller 106, wirelessly accessiblevia the internet/cloud, etc. In various instances, the operationparameter profile can be based on the measurements collected during onlythe initial movement, or it can be based on multiple initial “profilegenerating” movements. Any number of initial “profile generating”movements can be used. For example, the profile can be generated basedon a movement of the architectural element 100 across the length ofactuation 110 in a first direction and a movement of the architecturalelement back across the length of actuation in the opposite direction.In some instances, the controller 106 tracks the direction in which thearchitectural element 100 is moving and separate profiles are stored foreach direction of travel.

After the operation parameter profile is collected and stored, themapping module 202 can include the operation of causing the moveablearchitectural element 100 to perform a subsequent movement. Thesubsequent movement can be, for example, during use of the device by auser (e.g., moving the moveable architectural element 100 to convert aliving room into a bedroom, etc.). During the subsequent movement, thesystem 10 (e.g., a sensor on the motor 10, the controller 106, etc.) canperform measurements of the operation parameter, or in some cases anindicator of the operation parameter. The measurements during thesubsequent operation can be at the same or a different resolution thanthe measurements performed during the initial mapping step. Similarly,the measurements during subsequent operation can be of the same value ora different value than the measurements performed during the initialmapping step. For example, during the initial mapping step, load on themotor may be measured directly, while during the subsequent operationload on the motor is determined via a power efficiency reading. In othercases, load on the motor can be determined via a power efficiencyreading during both the initial and subsequent movements.

The mapping module 202 can perform the operation of comparing themeasured operation parameter value to an appropriate value on theoperation parameter profile. The appropriate value can be a value thatcorresponds (e.g., same location, same time, etc.) to the measuredvalue. If the mapping module 202 determines that a differential betweenthe measured value and the profile value exceeds a predetermined (e.g.,preprogrammed) threshold, then the controller 106 can adjust themovement of the architectural element 100. In general, any predeterminedthreshold can be used, e.g., 1% of the profile value, 2% of the profilevalue, 3% of the profile value, 5% of the profile value, 10% of theprofile value, 15% of the profile value, 20% of the profile value, etc.If the threshold is exceeded, the controller 106 can infer that anobstruction has been encountered (e.g., a person, a pet, an inanimateobject, a mechanical failure of the system 10, an electric failure ofthe system 10, etc.).

In some instances, a single threshold-exceeding value results in aninference of an obstruction. In other instances, the system does notinfer an obstruction until a predetermined number of threshold-exceedingvalues (e.g., 2, 3, 5, 10, 50, 100) occur, either consecutively orwithin a particular number of measurements. In instances in which apredetermined number of threshold-exceeding values must occurconsecutively in order to infer an obstruction, if anon-threshold-exceeding value is measured before the predeterminednumber is reached, then the count can be reset to zero. In otherimplementations, in addition to or as an alternative from tracking thenumber of threshold-exceeding measurements, the system 10 can track anamount over the threshold of a particular measurement. In someinstances, the system 10 can accumulate the amounts over the thresholdof consecutive measurements (or within a particular number ofmeasurements) and infers an obstruction if the accumulated amountexceeds a predetermined amount. In such instances, if a non-thresholdexceeding value is measured before the predetermined amount is reached,then the accumulated amount can be returned to zero. In some cases, thesystem 10 can accumulate the amount over the mapped profile, as opposedto the amount over the threshold. In various implementations, the countor accumulated amount can be reset either during motion or after motionhas stopped. In some instances, the count of accumulated amount is notreset to zero, but rather is reset gradually. The rate at which thecount or accumulated amount is reset can depend on a number of factors,e.g., the size of the differential between the threshold (or profile)and the measured valued, the number of measurements taken, etc.

Any adjustment to movement of the architectural element 100 can be made,e.g., to improve system safety, to improve energy efficiency, etc. Forexample, the motion can be stopped or slowed or the direction of themotion can be reversed, e.g., to prevent further collision. In someinstances, actions other than adjusting a movement of the architecturalelement 100 can be taken. As a few of many examples, the system can runa diagnostic check on its mechanical and/or electric systems to ensureproper functioning, the profile can be updated (described below), aservice technician can be called or other notification action be taken,etc.

In various embodiments, there are additional considerations andlimitations that can be addressed in designing and implementing themapping module 202. One example consideration is at what points alongthe length of actuation 110 and/or at what times during movement of thearchitectural element 100 should mapping and/or analysis of measurementsagainst a profile occur. In some instances, mapping/analysis occurs whenthe system 10 has reached a steady or constant speed or acceleration (orother motion parameter). In such instances, mapping/analysis does notoccur when the system is in an initial acceleration or finaldeceleration phase. Instead, it can occur when, given the desired speedand acceleration profile, the system has reached the desired speed, asthe map should uniformly represent the steady state speed/operation. Insome cases, values when the system 10 is performing an initialacceleration or final deceleration are unsteady and/or unreliable andmay result in false positive or false negative readings. In otherinstances, mapping/analysis can occur during the initial accelerationand final deceleration stages.

In various embodiments, signal noise, whether from mechanical orelectrical sources, can be accounted for and, in some cases, mitigated.In general, any known technique or computational resource for accountingfor noise can be used, e.g., a sliding median filter with an appropriatewindow size (e.g., 15, 20, 25, 50, 100). As used herein, window sizerefers to a number of measurements considered aggregately to account fornoise. For example, when a window size of 25 is used, rather than usinga single value for each measurement, the controller 106 can look at thelast 25 values and use the average or median of those as themeasurement. Many other signal processing techniques are available foraccounting for noise. The same or different techniques can be usedduring the mapping and analysis phases, or in some cases a signalprocessing technique may only be used in one phase or the other.

In various embodiments, the mapped profile can be updated. In general,the profile can be updated at any interval and according to anycondition or pattern, e.g., every time the architectural element 100moves, every time the system is powered on and/or off, only once duringthe system's lifetime, every time there is and/or is not an obstructionevent. Updating the profile can include replacing at least onemeasurement/value in the profile with an updated measurement/value. Forexample, all of the measurements/values can be updated, or only apredetermined (e.g. 1, 2, 3, 10, 25, 50, 100) measurements/values oneither side of a collision event can be updated. The updatedmeasurement/value can be a filtered measurement (e.g., using the slidingmedian filter), an unfiltered measurement, an average of the filteredmeasurement and the original measurement, an average of the unfilteredmeasurement and the original measurement, an average of multiplemeasurements since the original measurement, a median of multiplemeasurements since the original measurement, etc. In general, any numberof measurements/values in the profile can be updated/replaced, e.g., allof the measurements/values, only measurements/values for which anupdated measurement exceeds a particular differential threshold, onlythe measurements/values within a particular distance or time of acollision event, etc.

In various implementations, the controller 106 can automaticallyupdate/tune the threshold values used to infer an obstruction event. Forexample, at any time (e.g., before updating the profile with the mostrecent values), the controller 106 can compare a prior movement (e.g.,the most recent movement without an obstruction inference) with theprofile and identify thresholds (e.g., a top and bottom threshold) thatprovide the smallest/tightest bounds that do not trigger an obstruction.The thresholds can then be set to these values (or in some cases with anadded overhead), e.g., so that the system 10 provides a faster stop withlower obstruction force. Updating of thresholds can occur at anyadvantageous time, e.g., after every movement of the element, afterevery movement of a particular length (e.g., with a sufficient amount ofdata, but that is likely to occur with a desired frequency). In general,any concept for updating the profile described above or elsewhere hereincan be applicable to updating the thresholds. For example, the thresholdcan be updated at any interval and according to any condition orpattern, e.g., every time the architectural element 100 moves, everytime the system is powered on and/or off, only once during the system'slifetime, every time there is and/or is not an obstruction event.

In some implementations, the motor 104 includes a dedicatedmicrocontroller 112 that is located locally on the motor 104. Ingeneral, unless otherwise stated herein, any function performed by thecontroller 106 can, in some instances, be performed by themicrocontroller 112. The microcontroller 112 can include eitherupdateable or fixed firmware. In instances in which the microcontroller112 has fixed firmware, the master controller 106 can be updated via awired (USB, etc.) and/or wireless (e.g., internet, LAN, etc.)connection. In various implementations, either the controller 106 or themicrocontroller 112 can perform the threshold updates discussed above.In instances in which the controller 106 performs the updates, thecontroller 106 can perform the analysis remotely and/or instruct themicrocontroller 112. In some cases, the controller 106 can instruct themicrocontroller 112 to switch between various modes of operation. Invarious implementations, the system 10 can include multiple motors 104and/or microcontroller 112 (e.g., in systems with multiple moveableelements 100 or a single moveable element). In such implementations,some or all of the microcontrollers 112 can be controlled by the mastercontroller 106.

In some implementations, it is advantageous for the system to avoidfalse positives (e.g., when movement of the element 100 is stoppedbecause the system 10 infers an obstruction when no obstruction exists)and false negatives (e.g., when a collision occurs but the system 10does not detect it). Example conditions that cause false positivesinclude: the element 100 being pushed manually so its position is offsetin the map, increases in weight on the element 100 between differentmovements, mechanical defects, threshold parameters that are too low,etc. The controller 106 can overcome a false positive using varioustechniques. For example, following a false positive event, thecontroller 106 can erase the mapped profile and/or retune the thresholdparameters. In general, any suitable action can cause the controller 106to perform these actions, e.g., occurrence of an identified falsepositive, a stall occurring on the first run since a power up in eitheror both directions, a stall occurring twice in a row in either the sameor in opposite directions, etc.

In some implementations, rather than changing speed based on the load,the system 10 can change an amount of current delivered to the motor 104based on load (or, in some cases, another measured parameter). Forexample, when the load on the motor 104 decreases, the current deliveredto the motor 104 can decrease and when the load on the motor 104increases, the current delivered to the motor 104 can increase. Thismode of operation can allow the system 10 to be energy efficient. Insome cases, this mode of operation is available when plentiful sourcesof reserve current are available. Monitoring current draw can alsoensure that the motor 104 and/or other electrical components do notoverheat. In some implementations, selective delivery and monitoring ofcurrent draw is performed by a current mapping module 204 executed bythe controller 106 (or a microcontroller 112).

FIG. 4 is a flow chart of example operations performed by the currentmapping module 204. As shown, many of the operations performed by thecurrent mapping module 204 are the same as those performed by themapping module 202. As such, in some cases, the current mapping module204 is a sub-module of the mapping module 202. The current mappingmodule 204 can calculate a current profile based on a mapped profile ofan operation parameter. The current profile can include an appropriateamount of current to deliver to the motor 104 along the length ofactuation. Upon subsequent movement(s) of the architectural element 100,the module 204 can deliver current to the motor 104 in accordance withthe current profile. In general, any appropriate amount of current canbe delivered; for example, no more than 101%, 103%, 105%, 110%, 115%,120%, or 125% of the current needed to prevent the motor from stalling.In other instances, the system 10 can be programmed to move thearchitectural element according to a desired movement profile (e.g.,speed and acceleration) and the system 10 can determine an appropriateamount of current to deliver to the motors in order to accomplish thedesired movement profile (e.g., based on torque demands), without theuse of mapped current values. In some implementations, the operationparameter itself is current draw and, for example, the system 10 caninfer an obstruction event if the amount of current draw is increased.

In some motors (e.g., DC motors), voltage correlates to the speed atwhich the motor turns, and current correlates with the torque that themotor outputs. When a voltage is applied to a motor, the motor willattempt to draw the current that it needs to generate the torque itneeds to reach the speed aligned with that voltage. In some instances,this means that at standstill the motor 104 draws a large current to getthe rotor spinning, and the current draw drops off precipitously oncethe motor is spinning and continues to drop as it approaches the steadystate speed.

In some embodiments, the controller 106 (or the microcontroller 112) canexecute an adaptive current sensing module 208. The adaptive currentsensing module 208 is similar to the current mapping module in that bothmodules monitor the amount of current delivered to the motor. However,rather than comparing the measured current value to a value mapped forthat location during a prior movement of the architectural element 100across the length of actuation 110 (e.g., like the current mappingmodule 204), the adaptive current sensing module 208 compares themeasured current value to a previously measured value at a differentlocation during the same movement. In some instances, the adaptivecurrent sensing module 208 compares the measured current value to abaseline amount, e.g., calculated as the average of previous currentmeasurements (e.g., all previous measurements during that movement or apredetermined previous number of measurements, e.g., 2, 3, 5, 10, 50,100, etc.). If the amount of current draw changes by a predeterminedamount (e.g., 5%, 10%, 20%, 30%, 50%, 100%, or any other amountcharacteristic of the architectural element encountering anobstruction), within a predetermined amount of time (e.g., 1 μs, 1 ms, 5ms, 10 ms, 0.3 s, 0.5 s, 1 s, 2 s, etc.) and/or a predetermined numberof measurements (e.g., 1, 2, 5, 10, etc.) and/or a predetermined numberof motor steps, then the adaptive current sensing module 208 can takesome corrective action (e.g., stopping, slowing, and/or reversing themovement of element 100). As one non-limiting example, provided solelyfor the purpose of illustrating the concept, if the adaptive currentsensing module 208 receives a current measurement that is 20% greaterthan the average of all the previous current measurements during aparticular movement, the module 208 can infer that an obstruction hasoccurred and take some corrective action. In some instances, theadaptive current sensing module 208 can be advantageously used with anon-stepper DC motor.

In some embodiments that monitor current draw, current-sense resistorsare placed on each lower leg of an H-bridge that drives the motor 104,as shown for example in FIG. 5 . In such embodiments, when the motor 104drives in one direction, the current flows through one leg, and when themotor drives in the other direction, the current flows through the otherleg. With voltage being equal to current times resistance, if theresistance of the resistors is known, current can be calculated bymeasuring the voltage across the resistors. In some instances, the topof each resistor is connected to a hardware multiplexer, which passesthe top of the resistor with current flowing through it as a result ofthe direction that the motor 104 is spinning. This output can beconnected to the inverting input of an operational amplifier via anotherresistor, and the non-inverting input is set by a voltagedigital-to-analog converter that outputs a steady voltage. The invertinginput can be connected to the output via another resistor. The outputcan be connected to an analog-to-digital converter, which converts thevoltage into an integer. The microcontroller 112 or controller 106 canthen operate on this integer to determine the current flowing throughthe motor 104 (e.g., in milliamps). Many other techniques for measuringcurrent draw are possible and contemplated.

All of the data processing techniques described above with respect toother operation parameters are applicable to measurements of currentdraw. In some embodiments, the controller 106 (or a memory accessiblethereby) can store a predetermined number of current measurements (e.g.,the last 5, 10, 25, 50, 100), and each time a new value is measured, theoldest value can be dropped in favor of the new value. The average ofthe stored values can then be calculated and used as the currentmeasurement. In some cases, the current measurement is compared to a“static high threshold.” If the current measurement exceeds the statichigh threshold for a predetermined amount time (e.g., milliseconds), theovercurrent detector is tripped, and the microcontroller stops themotor. The static high threshold may be a value that is reached if themotor 104 is unable to reach a predetermined speed in a predeterminedamount of time, e.g., indicating that an object is blocking movement ofthe element 100. While the element 100 is in motion, the controller 106can compare the current measurement to a “moving high threshold.” Themoving high threshold can be a static number lower than the static highthreshold. Similar to the static situation, if the current measurementexceeds the moving high threshold for a predetermined amount of time(e.g., milliseconds) while the system 10 is in motion, the overcurrentdetector is tripped and the motor is stopped.

In addition to the moving high threshold and static high threshold, thecontroller 106 can also maintain a baseline value to which the currentmeasurement is compared (e.g., the mapped profile value). The baselinecan vary. In some cases, the baseline closely follows the currentmeasurement values, but more slowly, adapting to the readings over timeas a moving average, which can allow the controller 106 to compare thebase value against an instantaneous value and determine if a collisionhas occurred.

The baseline can be continually or periodically updated, or in somecases not updated. An example technique for updating the baselineincludes subtracting the baseline from the current measurement, and ifthe difference is positive but lower than an “update threshold” for apredetermined amount of time (e.g., milliseconds), the baseline updates(e.g., via a jitter filter, which can include incrementing the baselineby one, rather than a calculated value). In some instances, the systemcan differentiate between normal variations (e.g., drift) in currentreadings, which can be used to update the baseline, and an abnormalvariation that represents an obstruction condition, which may not beused to update the baseline. If the difference is negative for apredetermined amount of time (e.g., milliseconds), the baseline can alsoupdate downwards (e.g., via a jitter filter, which can includedecrementing the baseline by one). The update threshold used to updatethe baseline can be a value that is lower than the threshold used foradjusting (e.g., stopping) the movement of the element 100.

As mentioned above with respect to other operation parametermeasurements, in some embodiments, the current measurements can beunstable during certain portions of the element's movement. For example,the measurements can be unstable during the spin up period of motion, inwhich the motor goes from standstill to some amount of angular speed.The current may initially spike for a few milliseconds, then come downprecipitously, then increase again, and as the current levels offdownwards there can be significant noise and variance in the readings.As another example, the measurements can be unstable during operation ifthe system decelerates and/or accelerates, and in some instances theadditional current draw required by the acceleration can be considered acollision resulting in a false positive. In order to combat thesecomplications, in some instances, the controller 106 can apply analgorithm to determine the stability of the current readings. In suchinstances, if the current readings are not determined to be stable, thenthreshold-exceeding measurements can be ignored. In such instances, thethresholds are only applicable to stable measurements.

In general, any technique can be used to determine the stability of thecurrent measurements. As one example, the current measurements areconsidered stable once the following two conditions are met for apredetermined amount of time (e.g., milliseconds): (1) the thresholdvalue for too much current being delivered is not exceeded and (2) theupwards rate of change of the pulse width modulation (PWM) on the motoris below a threshold rate value. In some cases, if the current readingsare stable, but the PWM starts to increase at a rate above the thresholdrate value, the current readings will again be considered unstable. Insome cases, the baseline is set to the current measurement when themeasurements transition from unstable to stable, e.g., to get the mostrobust and accurate detection.

In some implementations, the controller 106 ensures that initialacceleration is slow enough to avoid stall and slows the motor 104 downif more torque is required to move in one direction. Additionally, ifthe system does become blocked (e.g., due to a collision), thecontroller 106 can stop the motor 104 before it reaches a stall state,which helps manage torque and speed requirements. A stall state canexist when the motor 104 is unable to supply enough torque to keep therotor spinning. When this happens, the magnetic field continues torotate inside the motor, but the rotor does not spin, which can cause aloud noise.

Another aspect of the invention relates to determining a position of thearchitectural element 100 along the length of actuation 110. Knowing theposition (or an approximate position) of the element 100 can beadvantageous for numerous reasons including, for example, adjusting themotion of the element 100 (e.g., slower when closer to walls or ends ofthe length of actuation 110, to avoid abrupt stoppages which can damagethe system 10 and/or result in items falling off of element 100 due toinertial forces).

In various embodiments, the system 10 can include a position trackingelement 114 (see FIG. 6 ) and the controller 106 can include a positiontracking module 206 (see FIG. 2 ). In general, the position trackingelement 114 can be located at any suitable location on the system 10,not just along the track 108 as shown in FIG. 6 .

FIG. 7 is a schematic diagram showing an example position trackingelement 114. The element 114 can include a sensor component 116 and asensed component 118 (sometimes referred to herein as a relativeposition tracking element). In general, the sensed component 118 can beany element that conveys information regarding location with respect tothe track 108 (or other suitable structural element that can serve as afixed point of reference). As one example, the sensed component 118 caninclude a surface with indicia that can be used to indicate a location,for example, a printed tape with discrete colored portions 118 a, 118 b,118 c, etc., which in some cases are non-repeating. In order for theprinted tape 118 to convey location with respect to the track 108, insome cases, the printed tape 118 is mounted in fixed relation to thetrack 108. In some cases, that printed tape 118 is housed within thetrack 108 (or a housing that contains the track 108) and can block all,substantially all, a majority of, or some ambient light fromilluminating the printed tape 118.

In various embodiments, the sensor component 116 is configured to movewith respect to the sensed component 118. For example, the sensedcomponent can be mounted in fixed relation to the architectural element100, such that as the element 100 moves along the track 108, the sensorcomponent 116 move along the sensed component 118. In general, thesensor component 116 can be any type of sensor capable of sensing anenvironment (e.g., some property of the sensed component 118), e.g., anoptical sensor, a thermal sensor, etc. In one example embodiment, thesensor component 118 includes a light source 120 (e.g., a white LED witha stable color output) positioned and adapted to illuminate the printedtape 118. The sensor component can also include a color sensor 122(e.g., an RGB color sensor), an incremental positioning system 124, amicroprocessor 134, and a printed wiring board. In operation, the colorsensor 122 can receive light from the light source 120 reflected off aparticular portion of the sensed component 118 located proximate thesensor component 118, such that the color sensor 122 can determine thecolor of the particular portion. The color can then be communicated tothe microprocessor in any suitable format, e.g., with at least 4-bits,8-bits, 16-bits, 32-bits, etc. of resolution for each color.

In various embodiments, the incremental positioning system 124 tracksthe linear position of the sensor component 118 with a predeterminedresolution, e.g., 1 mm, 2 mm, 3 mm, 5 mm, 10 mm, 25 mm, 50 mm, 100 mm.One example of an incremental positioning system 124 includes anincremental mechanical rotary encoder 126 and an infrared sensor 128coupled with an infrared emitter 130 that reflects off of infrareddetectable indices 132 (e.g., white and black lines/portions). In someimplementations, the microprocessor 134 tracks the position of thesensor component 116/architectural element 100 with respect to the track108 and stores the position, e.g., in a non-volatile memory. If thesystem 10 is powered down, the microprocessor can recall the element'sposition when the system is powered up again, in some cases, even if thelocation of the element 100 changed when the system was powered down.

In certain embodiments, the microprocessor 134 can store theconfiguration of the sensed component, e.g., the printed tape 118. Forexample, the microprocessor 134 can store the order of the discreteportions (e.g., non-repeating color portions) and the length of eachportion. In some cases, the microprocessor 134 is pre-programmed withthis information. In other cases, the microprocessor 134 performs aprogramming function to determine this information.

The programming function can be performed by the position trackingmodule 206 (see FIG. 2 ). FIG. 8 is a flowchart showing exampleoperations of the position tracking module 206, including theprogramming function. The operations can include causing thearchitectural element 100/sensor component 116 to perform an initialmovement (or, in some cases, multiple movements) along the length of thetrack 108/sensed component 118. In general, the architectural element100/sensor component 116 can move along any length of the track108/sensed component 118; for example, the architectural element100/sensed component 118 can begin at a first end of the track108/sensed component 118 and move to a second/opposite end of the track108/sensed component 118.

During the initial movement(s), the sensor component 116 can collectinformation and obtain properties regarding the sensed component 118(relative position tracking element) and store the information in anon-volatile memory. In general, any measureable information can becollected and stored. In some cases, the information includes the lengthof each discrete portion (e.g., color portions 118 a, 118 b, 118 c onprinted tape 118), the sequence of the discrete portions, and a totallength of the sensed component 118. The length of each discrete portionand the total length can be measured using any technique, e.g., usingthe incremental positioning system 124. In some embodiments, thesequence of the discrete portions 118 a, 118 b, 118 c can encodeinformation about the type of system 10 that can be understood by themicroprocessor 134 and/or controller 106. For example, the sequence ofthe discrete portions can function as a barcode or QR code. In general,any information can be communicated in this manner, e.g., size of thesystem, configuration of the system (e.g., furniture or other itemsincluded), desired speed profile, desired load profile, maximum speed,maximum load, power requirements, maintenance schedule, among many otherexamples.

Knowing the properties of the sensed component 118 (either viapre-programming, the programming function, etc.) can enabledetermination of position even when the system 10 is started (poweredup) at a location in the middle of the track 108. For example, as shownin FIG. 8 , upon startup of the system 10, the position tracking module206 can estimate its position by identifying a discrete portion (e.g.,color portion) on the sensed component (printed tape) 118. For example,by knowing what color portion the sensor component 116 isproximate/adjacent to and the length of the color portion, the positiontracking module 206 knows its position is somewhere within that length.Based on the estimated position, the position tracking module 206 candecide if motion/what type of motion is permitted. For example, motionmay not be permitted in a particular direction or at a particular speedif the element 100 is located near the end of the track 108 or anotherobject. If motion is permitted, the position tracking module 206 cancause the element 100 to move until the sensor component 116 detects acolor transition (or other discrete portion transition). In someimplementations, during this motion, the incremental positioning system124 is used to determine the distance it takes to reach the colortransition, though this is not required in all implementations. Uponreaching the color transition, the position tracking module 206 candetermine the element's exact position, e.g., based solely on knowledgeof the properties of the sensed component 118, or based on knowledge ofthe properties of the sensed component 118 and the distance it took toreach the color transition. Once exact position is known, in some cases,the position tracking module 206 continues to track position using theincremental positioning system 124. The process can repeat if any eventoccurs such that the position tracking module 206 loses knowledge of theexact position, e.g., if the system 10 loses power, if the system 10 ismanually moved, etc. In some implementations, the position trackingmodule 206 can only estimate position and not determine exact position.In such instances, the sensor component 116 may not include theincremental positioning system 124.

Another aspect of the invention relates to inventive techniques fordistributing power to the various components of the system 10. Asmentioned above, the moveable architectural element 100 is often movedvia a drive element 102 that is driven by a powered motor 104. However,the system 10 is somewhat unique in that the item (or, in some cases,multiple items) requiring power can be mobile during operation of thesystem 10. This creates multiple complications, usage difficulties, andpotential safety hazards. For example, simply running a power cord froma wall outlet to the motor and allowing the cord to travel as thearchitectural element 100 moves, can result in the cord being snagged orcaught, which can result in damage to the system 10, damage to the cord,and even a fire.

In various implementations, the system 10 can include power distributionsystems that are safer and more user friendly than conventionaltechniques. For example, as shown in FIG. 9 , in some embodiment thatsystem 10 can include a modular power distribution assembly 136. In someinstances, the modular power distribution assembly 136 forms the track108 shown in FIG. 1 . The modular power distribution assembly 136 caninclude at least some of the following components: a housing 138, aninsulating material 140 (e.g., polymeric), at least one conductive rail142, at least one power entry module 144, at least one power exit module146, a strain relief mechanism, a splice section 148, an end cap 150,and/or a mounting mechanism. Not every embodiment features all of thesecomponents, and some embodiments feature additional or differentcomponents.

In general, the modular power distribution assembly 136 can be mountedin any location such that is can distribute power to at least onemoveable architectural element 100 of the system. For example, the powerdistribution assembly 136 can be mounted and/or located on a floorsurface, a wall surface, a ceiling surface, and/or another architecturalelement or structural element. As mentioned, in some cases, the powerdistribution assembly forms or is located within the track 108 shown inFIG. 1 . For example, the power distribution assembly 136 may be placedalong a wall parallel to the floor to allow for horizontal movement,vertically (e.g., orthogonal to the floor) to allow for verticalmovement, at an angle, or in some cases in a non-linear path, dependingon the desired path of movement for the element 100.

The housing 138 may have an extruded profile that may be straight,curved or have a form that matches a particular profile. The housing 138can limit access to the conductive rails (from humans and animals),making it suitable for use in home and office environments, and avoidingrisks of electric shock or pinched fingers. The housing 138 can containan insulated liner 140 or be formed from an insulating material (e.g.,polymeric). In some cases, one or more energized conductive rails 142extend lengthwise along and are surrounded by the housing 138. The rails142 can carry electric current to the power exit module(s) 146. In someembodiments, the rails 142 provide a low impedance path, e.g., less than0.1 Ohms to a protective earth ground. In some cases, each rail 142 issurrounded by an insulating material/liner 140. For example, if thehousing 138 is made of an electrically conductive material, a layer ofpolymeric insulating material can coat each conductive rail 142 toinsulate it from the housing 138. In some implementations, the housing138 itself is made of a conductive material and can be used as aconductive rail 142.

In general, the power entry module 144 can include any device that cantransfer power to the conductive rail(s) 142 and/or power exit module(s)146. Although only a single power entry module 144 is shown in FIG. 9 ,any suitable number of power entry module(s) 144 can be included. Ingeneral, the power entry module 144 can be located at any location alongthe housing 138, e.g., at either end of the housing 138. In some cases,an end cap 150 is mounted to one or both ends of the housing 138 (e.g.,an end without a power entry module 144) to prevent access to theconductive rails and to ensure that the power exit module(s) 146 aremechanically contained, e.g., for safety reasons. The power entry module144 can include an input connector such that the power entry module 144can be connected to the environment's AC electrical system, an auxiliaryAC power source, and/or an auxiliary DC power source. The power entrymodule 144 can include internal routing that electrically couples theconductors of the input connector to the conductive rail(s) 142. Thepower entry module 144 may also mechanically enclose live parts that maybe accessible on the input connector and internal routing. In somecases, the power entry module 144 and/or the end cap 150 is replacedwith a standard power outlet (e.g., based on the region in which theassembly is installed).

In various implementations, one or more power exit modules 146 aremoveably mounted within the housing 138 and provide multiple poweraccess points. As mentioned above, in some configurations, the system 10can include multiple moveable architectural elements 100 (e.g., 2, 3, 4,or more). In such configurations, a separate power exit module 146 candeliver power to each architectural element 100 (see FIG. 10 ). In otherinstances, a single power exit module 146 can deliver power to two ormore architectural elements 100 (e.g., all of the architectural elements100). In some configurations, one end of each power exit module 146 iscontained within the housing 138 by, for example, inserting it within anopen end of the housing 138 that is subsequently closed with the powerinput module 144 and/or the end cap 150. The other end of each powerexit module 146 can extend outwardly away from the housing 138. Thepower exit module(s) 146 can each include an electrical coupling element(e.g., conductive element, printed wiring board, individual electricalwires, etc.) to route power from the conductive rail(s) 142 to a poweroutput. The power exit module(s) 146 can also include a polymericcomponent that insulates the electrical contacts and provides them witha means of mechanical support.

In some configurations, a power cord can be used to transfer power fromthe power exit module 146 to the moveable architectural element 100. Forexample, the power cord can be routed starting at the conductive rail142 or from an external power supply (e.g., a wall outlet). In suchconfigurations, each power exit module 146 can include a strain reliefmechanism to relieve strain on the cord of the power cable. For example,the strain relief mechanism can be attached to any or all of themoveable element(s) 100 to ensure that the power cable connected to themoveable element 100 does not feel any of the force used to move thepower exit module(s) 146 along the track 108. Any type of strain reliefcan be used, e.g., a strain relief cord, a hook and eye device, and/orany mechanical attachment that transfers the force of moving the powerexit module 146 to the moveable element 100.

In some implementations, the power distribution assembly 136 can includea splice section 148 that can be inserted between two lengths of ahousing 138 to extend the length of the power distribution system 136.For example, power distribution assemblies 136 that exceed apredetermined length can be assembled with multiple housings 138 and atleast one splice section 148. Among other advantages, this can enableeasier shipping and assembly for assemblies that exceed a certainlength. The splice section(s) 148 can have any configuration that enablepower to be distributed from a first housing section to a second housingsection. For example, each splice section 148 can include the samenumber of electrical contacts as the number of conductive rails 142 inthe housings 138.

Any suitable mounting mechanism can be used to affix the powerdistribution assembly 136 to a built environment. For example, themounting mechanism can include an adhesive strip between the housing 138and the built environment, a mounting bracket between the housing 138,power entry module 144, and/or end cap 150 and the built environment, ahigh friction material between the housing 138 and the builtenvironment, etc.

In some configurations, the system 10 can be moved by multiple driveelements 102 (e.g., drive wheels), e.g., located at desirable locationsbased on the moment of inertia and desired movement profile of thearchitectural element 100. For example, one drive element 102 can belocated on one side of the element 100 and another drive element 102located on the other side of the element 100. In some cases, multipledrive elements 102 (e.g., multiple drive wheels) can be located oneither side of the element 100. In some embodiments, as shown in FIGS.11A-B, the power distribution assembly 136 only delivers power to one orsome of the drive elements 102, but not all of the drive element 102.For example, the power distribution assembly 136 may only deliver powerto motors 104 associated with the drive elements 102 on one side of thearchitectural element 100, but not to the other side of the element 100.In such instances, similar to the front wheels in a rear-wheel drivevehicle, the drive elements 102 that do not receive power can beindirectly moved by the drive elements 102 that do receive power. Insuch instances, the drive elements 102 that do not receive power canstill travel along a track 108 to provide balance and/or guidance to theelement 100. The sides of the element 100 need not be parallel as shownin FIG. 11A-B.

In other implementations, the system 10 includes multiple powerdistribution assemblies 136 that deliver power to different driveelements 102. For example, as shown in FIGS. 12A-B, a first powerdistribution assembly 136 a can deliver power to motors associated withdrive elements 102 on a first side of the architectural element 100 anda second power distribution assembly 136 b can deliver power to motors104 associated with drive elements 102 on another side of the element100. The sides of the element 100 need not be parallel, as shown inFIGS. 12A-B. In some instances, multiple power distribution assemblies136 can deliver power to the same drive elements 102.

In some implementations, the moveable architectural element 100 itselfcan support additional power distribution assemblies 136 which may beparallel to, orthogonal to, at another angle to, or in non-linearrelation with the primary power distribution assembly 136, thus creatinga multi-axis system with powered movement along each axis. In someinstances, the power exit module 146 from the primary power distributionassembly may provide the power input into a secondary power distributionassembly. In other instances, a cord may connect the two assemblies.

As mentioned, various embodiments of the system 10 include multiplemoveable architectural elements 100. In some instances, a first moveableelement 100 a (e.g., a wall) can move along a first track 108 a forminga first axis 152 and at least one additional moveable element 100 b(e.g., a bed, a desk, a couch, a closet, a shelf, etc.) can be movedalong a second track 108 b forming a second axis 154. In some cases, thesecond track 108 b is attached to the first moveable element 100 a, asshown for example in FIG. 13 . In general, the first axis 152 and thesecond axis 154 can be arranged at any angle with respect to each other,e.g., parallel (FIG. 13 ), perpendicular, and any other angle in anyplane. In general, the first and second tracks 108 a, 108 b (and anyadditional tracks) can be arranged in any suitable configuration, e.g.,adjacent to each other on one side of the system 10, on opposing sidesof the system 10, or both. In some instances, the motions of eachmoveable element 100 a, 100 b can be independent of each other (ineither the same or different directions). In other instances, themotions of each moveable element 100 a,100 b can be dependent upon eachother (in either the same or different directions). The motions of themoveable elements 100 a, 100 b can either be in unison or out of unison.

In general, the first moveable element 100 a can be arranged in anyrelation to the second moveable element 100 b. For example, the elements100 a, 100 b can be horizontally adjacent (see, e.g., FIG. 10 ),vertically adjacent, and/or nested (see, e.g., FIGS. 13, 14A-B). In somecases, both (or all) moveable elements can be driven by the same driveelement 102. In other cases, the moveable elements are driven bydifferent drive elements 102. In some cases, the different driveelements are of the same type (e.g., both motors 104 attached to drivewheels). In other cases, the different drive elements are different fromeach other. For example, in some configurations, a first moveableelement 100 a can be driven by a motor 104 and a second moveable element100 b can be driven by a friction drive 156. A friction drive can takeany known form, including for example a drive wheel.

An example of this configuration is shown in FIG. 15 . In some cases,the friction drive 156 eliminates the need to route power to anadditional moving element, allows for ease of integration, on-siteassembly/servicing, and/or lowers the cost of the system 10. Further,due to the variability of the installation environments (e.g., floorvariations, wall misalignments, etc.) the moveable elements can besubject to misalignment and the friction drive 156 can offer increasedresistance to such misalignment and an unlimited travel length.

As shown in FIG. 15 , the configuration can also include an adjustablemounting bracket 158. The drive wheel 156 can be rigidly coupled to themotor 104, and the motor 104 can be rigidly mounted to the adjustablemounting bracket 158. The adjustable mounting bracket can be adjusted inreference to the first moveable element 100 a (e.g., wall chassis)during installation or servicing to tune the amount of force the drivewheel 156 exerts on the second moving element 100 b (e.g., furnitureelement), thus allowing the friction drive 156 to perform well over awide range of manufacturing and assembly tolerances in the system, aswell as to account for wear over time. FIG. 16 shows the drive wheel 156in contact with the second moveable element 100 b. In some embodiments,one of the moveable elements 100 a, 100 b remains stationary and onlythe other moveable element moves; for example, under any of the drivesdescribed above (e.g., motor drive, friction drive, etc.)

Implementations of the subject matter and the operations described inthis specification can be implemented in digital electronic circuitry,or in computer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Implementations of the subjectmatter described in this specification can be implemented as one or morecomputer programs, i.e., one or more modules of computer programinstructions, encoded on computer storage medium for execution by, or tocontrol the operation of, data processing apparatus. Alternatively or inaddition, the program instructions can be encoded on an artificiallygenerated propagated signal, e.g., a machine-generated electrical,optical, or electromagnetic signal, that is generated to encodeinformation for transmission to suitable receiver apparatus forexecution by a data processing apparatus. A computer storage medium canbe, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. Moreover,while a computer storage medium is not a propagated signal, a computerstorage medium can be a source or destination of computer programinstructions encoded in an artificially generated propagated signal. Thecomputer storage medium can also be, or be included in, one or moreseparate physical components or media (e.g., multiple CDs, disks, orother storage devices).

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languageresource), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing actions in accordance with instructions andone or more memory devices for storing instructions and data. Generally,a computer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, e.g., magnetic, magneto optical disks, or optical disks.However, a computer need not have such devices. Moreover, a computer canbe embedded in another device, e.g., a smart phone, a smart watch, amobile audio or video player, a game console, a Global PositioningSystem (GPS) receiver, or a portable storage device (e.g., a universalserial bus (USB) flash drive), to name just a few. Devices suitable forstoring computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto optical disks; and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending resources to and receiving resources from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Implementations of the subject matter described in this specificationcan be implemented in a computing system that includes a back endcomponent, e.g., as a data server, or that includes a middlewarecomponent, e.g., an application server, or that includes a front endcomponent, e.g., a client computer having a graphical user interface ora Web browser through which a user can interact with an implementationof the subject matter described in this specification, or anycombination of one or more such back end, middleware, or front endcomponents. The components of the system can be interconnected by anyform or medium of digital data communication, e.g., a communicationnetwork. Examples of communication networks include a local area network(“LAN”) and a wide area network (“WAN”), an inter-network (e.g., theInternet), and peer-to-peer networks (e.g., ad hoc peer-to-peernetworks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someimplementations, a server transmits data (e.g., an HTML page) to aclient device (e.g., for purposes of displaying data to and receivinguser input from a user interacting with the client device). Datagenerated at the client device (e.g., a result of the user interaction)can be received from the client device at the server.

A system of one or more computers can be configured to performparticular operations or actions by virtue of having software, firmware,hardware, or a combination of them installed on the system that inoperation causes or cause the system to perform the actions. One or morecomputer programs can be configured to perform particular operations oractions by virtue of including instructions that, when executed by dataprocessing apparatus, cause the apparatus to perform the actions.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular implementations of particularinventions. Certain features that are described in this specification inthe context of separate implementations can also be implemented incombination in a single implementation. Conversely, various featuresthat are described in the context of a single implementation can also beimplemented in multiple implementations separately or in any suitablesubcombination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the implementations described above should not beunderstood as requiring such separation in all implementations, and itshould be understood that the described program components and systemscan generally be integrated together in a single software product orpackaged into multiple software products.

Thus, particular implementations of the subject matter have beendescribed. Other implementations are within the scope of the followingclaims. In some cases, the actions recited in the claims can beperformed in a different order and still achieve desirable results. Inaddition, the processes depicted in the accompanying figures do notnecessarily require the particular order shown, or sequential order, toachieve desirable results. In certain implementations, multitasking andparallel processing may be advantageous.

Each numerical value presented herein is contemplated to represent aminimum value or a maximum value in a range for a correspondingparameter. Accordingly, when added to the claims, the numerical valueprovides express support for claiming the range, which may lie above orbelow the numerical value, in accordance with the teachings herein.Every value between the minimum value and the maximum value within eachnumerical range presented herein, is contemplated and expresslysupported herein, subject to the number of significant digits expressedin each particular range. Absent inclusion in the claims, each numericalvalue presented herein is not to be considered limiting in any regard.

Unless expressly described elsewhere in this application (e.g., the useof the word “substantially” with respect to a geometric shape), as usedherein, when the term “substantially” or “about” is before aquantitative value, the present disclosure also includes the specificquantitative value itself, as well as a ±10% variation from the nominalvalue unless otherwise indicated or inferred.

The terms and expressions employed herein are used as terms andexpressions of description and not of limitation and there is nointention, in the use of such terms and expressions, of excluding anyequivalents of the features shown and described or portions thereof. Inaddition, having described certain embodiments of the invention, it willbe apparent to those of ordinary skill in the art that other embodimentsincorporating the concepts disclosed herein may be used withoutdeparting from the spirit and scope of the invention. The structuralfeatures and functions of the various embodiments may be arranged invarious combinations and permutations, and all are considered to bewithin the scope of the disclosed invention. Unless otherwisenecessitated, recited steps in the various methods may be performed inany order and certain steps may be performed substantiallysimultaneously. Accordingly, the described embodiments are to beconsidered in all respects as only illustrative and not restrictive.Furthermore, the configurations described herein are intended asillustrative and in no way limiting. Similarly, although physicalexplanations have been provided for explanatory purposes, there is nointent to be bound by any particular theory or mechanism, or to limitthe claims in accordance therewith.

1-100. (canceled)
 101. A system for moving architectural elements, thesystem comprising: a first architectural element movable along a firsttrack defining a first axis; and a second architectural element movablealong a second track, the second track being attached to the firstarchitectural element.
 102. The system of claim 101, wherein the firstarchitectural element comprises at least one of a wall and a firstfurniture item. 103.-104. (canceled)
 105. The system of claim 101,wherein the first architectural element is moved by a first actuatorthat receives electrical power from a power source and the secondarchitectural element is moved by a second actuator that operateswithout electrical power.
 106. (canceled)
 107. The system of claim 101,wherein the first architectural element and the second architecturalelement are moved by actuators that receive electrical power from apower source.
 108. The system of claim 101, wherein the second trackdefines a second axis.
 109. The system of claim 108, wherein the secondaxis is different than the first axis.
 110. (canceled)
 111. The systemof claim 108, wherein the second axis is the same as the first axis.112. The system of claim 101, wherein the first architectural elementand the second architectural element move independently of each other.113. The system of claim 101, wherein the first architectural elementand the second architectural element move in unison.
 114. The system ofclaim 101, wherein the first architectural element and the secondarchitectural element are arranged in a configuration selected from thegroup consisting of horizontally adjacent, vertically adjacent, andnested.
 115. A method of moving architectural elements, the methodcomprising: moving a first architectural element along a first trackdefining a first axis; and moving a second architectural element along asecond track, the second track being attached to the first architecturalelement.
 116. The method of claim 115, wherein the first architecturalelement comprises at least one of a wall and a first furniture item.117.-118. (canceled)
 119. The method of claim 115, wherein the firstarchitectural element is moved by a first actuator that receiveselectrical power from a power source and the second architecturalelement is moved by a second actuator that operates without electricalpower.
 120. (canceled)
 121. The method of claim 115, wherein the firstarchitectural element and the second architectural element are moved byactuators to receive electrical power from a power source.
 122. Themethod of claim 120, wherein the second track defines a second axis.123. The method of claim 122, wherein the second axis is different thanthe first axis.
 124. (canceled)
 125. The method of claim 122, whereinthe second axis is the same as the first axis.
 126. The method of claim115, wherein the step of moving the first architectural element and thestep of moving the second architectural element occur independently ofeach other.
 127. The method of claim 115, wherein the step of moving thefirst architectural element and the step of moving the secondarchitectural element occur in unison.
 128. The method of claim 115,wherein the first architectural element and the second architecturalelement are arranged in a configuration selected from the groupconsisting of horizontally adjacent, vertically adjacent, and nested.129-158. (canceled)